Method and system for near-duplicate image searching

ABSTRACT

Image processing includes dividing the plurality of images into a plurality of groups wherein images in the same group share the same main color; extracting a color feature vector (CFV) of each image in the plurality of groups; subdividing images in each of the plurality of groups into a plurality of subgroups using a clustering technique according to a distance between the CFVs of the images in the group to establish an image signature tree; searching among the plurality of subgroups for a result-subgroup having the same main color as the main color of a given image and containing an image whose CFV has the shortest distance from the CFV of the given image; comparing the CFV of the given image with the CFVs in the result group; and identifying a near-duplicate image from the result group that meets a preset near-duplicate image determining condition.

CROSS REFERENCE TO OTHER APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 12/802,815, entitled METHOD AND SYSTEM FOR NEAR-DUPLICATE IMAGESEARCHING filed Jun. 14, 2010 which is incorporated herein by referencefor all purposes, which claims priority to People's Republic of ChinaPatent Application No. 200910146726.5 entitled METHOD AND APPARATUS OFSEARCHING FOR NEAR-DUPLICATED PICTURES USING COMPUTERS filed Jun. 16,2009 which is incorporated herein by reference for all purposes.

FIELD OF THE INVENTION

The application relates to the field of digital image processing, and inparticular to a method and system for searching near-identical images.

BACKGROUND OF THE INVENTION

Advancement in information technology is causing higher demand forsearching for images. Sometimes, searching for near-duplicate images isnecessary. Near-duplicate image detection requires the matching ofslightly altered images to the original. For example, a sign or awatermark of a small area of an image which is introduced manually, or apicture zoom can cause one image to be a near-duplicate image to anoriginal image.

Much effort has been devoted to visual applications that requireeffective image signature and similar metrics. Conventionally, an imageextraction method for duplicate images detection includes two steps:first, certain features of two images are extracted and the features arecalled “signatures” of the images; then, the signatures of the twoimages are compared. If the signatures exactly match each other, the twoimages are determined to be the same. Color histogram vectors of theimages are often used to represent the features of these images. And thevectors can be extracted by first selecting and qualifying a colorspace, such as a Red-Green-Blue (RGB) space, then calculating the numberof pixels corresponding to each color within the whole or partial areaof the image in order to form a color histogram, and constructingvectors using all the formed color histograms as signatures of theimages. Therefore, one can use the above image extraction techniques tosearch for one particular image from a plurality of images.

To find an identical image of a given image from a plurality of images,comparison of the given image with each of the plurality images is oftenrequired. Because image feature extraction processes involved in thecomparing process are complicated, searching efficiency is relativelylow. Moreover, the conventional image feature extraction methodtypically cannot be used to determine whether two images arenear-duplicate images because features of images may be changed withslight changes in the color of a partial area of the images. Forexample, a watermark embedded in an image may cause a slight colorchange in a small portion of the image, but it may cause a big change inthe color histogram of the image.

Therefore, an efficient near-duplicate image search technique is needed.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 is a flowchart illustrating an embodiment of a near-duplicateimage searching method.

FIG. 2 is a flowchart illustrating another embodiment of anear-duplicate image searching method.

FIG. 3 is a schematic diagram of the structure of an image signaturetree established in the embodiment of FIG. 2.

FIG. 4 is a flowchart illustrating another embodiment of anear-duplicate image searching method.

FIG. 5 is a schematic diagram illustrating an embodiment of anear-duplicate image searching system.

FIG. 6 is a block diagram illustrating an embodiment of a near-duplicateimage searching system.

FIG. 7 is another block diagram illustrating an embodiment of anear-duplicate image searching system.

FIG. 8 is another block diagram illustrating an embodiment of anear-duplicate image searching system.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer-readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time, or a specific component that ismanufactured to perform the task. As used herein, the term “processor”refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims,and the invention encompasses numerous alternatives, modifications, andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example, andthe invention may be practiced according to the claims without some orall of these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

The present application provides a method and system for efficientlysearching for near-duplicate images.

FIG. 1 is a flowchart illustrating an embodiment of a near-duplicateimage searching process.

At 110, a plurality of images is divided into a plurality of groupsaccording to the main colors of the images so that the images in each ofthe groups share the same main color.

As used herein, a color space refers to an absolute color space, thatis, the colors are unambiguous where the interpretations of colors inthe space are colormetrically defined without reference to externalfactors. A color model is a mathematical model describing the way colorscan be represented as tuples of numbers, typically as three or fourcomponents (e.g. RGB and CMYK are color models). Adding a mappingfunction between the color model and a certain reference color spaceresults in a definite “footprint” within the reference color space. In athree-dimensional color space, the three-dimensional coordinate axescorrespond to three independent color parameters so that each color hasa corresponding space position, and vice versa, any point in the spacerepresents a specific color. For instance, when colors are displayed ona computer monitor, they are usually defined in the RGB (red, green,blue) color space. This is another way of making nearly the same colors(limited by the reproduction medium, such as the phosphor (CRT) orfilters and backlight (LCD), and red, green, blue can be considered asthe X, Y, and Z axes. Another way of making the same colors is to usetheir Hue (X axis), their Saturation (Y axis), and their brightnessValue (Z axis). This is called the HSV color space. Many color spacescan be represented as three-dimensional (X, Y, Z) values in this manner.

The main color of an image refers to a color that corresponds to themost pixels in this image. In some embodiments, determining the maincolor of an image includes: selecting a color space, such as an RGBcolor space, and quantifying the color space into M number of colors,calculating the number of pixels corresponding to each color in theimage; and selecting a color corresponding to the most number of pixelsas the main color. Here, M is an integer greater than 1, such as 256,512, 1024, etc.

At 120, a search is conducted among the plurality of groups for a resultgroup having the same main color as that of a given image.

At 130, the image features of the given image and all the images in theresult group are extracted.

At 140, the image features of the given image is compared with the imagefeatures of each image in the result group as that of the given image,and any image that meets a preset near-duplicate image determiningcondition is identified as a near-duplicate image of the given image.

The features of an image refer to information describing thecharacteristics of the image content. An image may have more than oneimage features, for example, a main color ratio (MCR), a color featurevector, etc.

The MCR of an image can be determined by initially quantifying theselected color space into M number of colors, where M is an integerlarger than 1, and then calculating the number of pixels correspondingto each color in the image, followed by finding the color which hashighest number of pixels, denoting the highest pixel number as H,summing the total number of pixels in the image denoted as T, andcalculating the ratio between H and T. Therefore, MCR is equal to Hdivided by T.

A color feature vector (CFV) is another way to represent the features ofan image. Each element of the CFV corresponds to one color in the colorspace of the image. In some embodiments, the CFV of an image can bedetermined by first dividing the image into N blocks, and calculatingthe number of pixels corresponding to each of a predetermined set ofcolors in every block, and then constructing a vector where its elementscorrespond to the number of pixels for a predetermined set of colors.Here, N is an integer larger than 1, such as 4, 9, and 16. Thepredetermined set of colors is greater than or equal to 1, but less orequal to M aforementioned. For instance, red, yellow, and blue can beselected as a tricolor set, or any subset of the M number of colorsobtained from the aforementioned can be selected.

In some other embodiments, the CFV of an image can be determined bydirectly calculating the number of pixels corresponding to each of thepredetermined set of colors in the image, then constructing a vectorwhere its elements correspond to the number of pixels for apredetermined set of colors.

In some embodiments, a near-duplicate image determining condition is setas the following: (1) the distance between the CFVs of two images iszero; and (2) the difference of the MCRs of two images is lower than apreset threshold, such as a value between 0 and 1.

In some other embodiments, a near-duplicate image determining conditionis set as the following: (1) the distance between the CFV of two imagesis lower than a preset threshold; and (2) the difference of the MCR of afirst color of two images is lower than a first preset threshold, andthe difference of the MCR of a second color of two images is lower thana second preset threshold. In some embodiments, the values of boththresholds are between 0 and 1, and the first threshold's value ishigher than the second threshold's value.

FIG. 2 is a flowchart illustrating another embodiment of anear-duplicate image searching process.

At 210, a plurality of images is divided into a plurality of groupsaccording to the main colors of the images so that the images in each ofthe groups share the same main color.

At 220, the CFV of each image in the plurality of groups is extracted,and the images in a group are subdivided into a plurality of subgroupsusing a clustering technique according to the distance between the CFVsof the images in the groups to establish a signature tree.

In some embodiment, the clustering technique used is k-means clustering,which is a method of cluster analysis that aims to partition Nobservation into K clusters in which each observation belongs to thecluster with the nearest means. That is the clustering technique is usedto divide multiple elements of the same type into groups. It is similarto the expectation-maximization technique for mixtures of Gaussians inthat they both attempt to find the centers of natural cluster in thedata as well as in the iterative refinement approach employed by bothtechniques. This technique is commonly used in computer vision as a formof image segmentation. The results of the segmentation are used to aidborder detection and object recognition. Here, N and K are both positiveintegers. For example, an image group contains N images and it can bedivided into K subgroups according to an initial criterion, with eachsubgroup containing at least one image and each image belonging to asingle group. Then, an iterative method is used to further divide aprevious subgroup so that the current grouping result is better than theprevious grouping result (i.e., the distance between the images in onegroup is increasingly shorter and the distance between the images fromdifferent groups is increasingly longer.) In the present application,the clustering technique is used to divide the CFVs of a plurality ofimages into groups. For instance, A (a1, b1, c1) and B(a2, b2, c2) aretwo CFVs and D is the distance between the vectors A and B, then D=sqrt((a1-a2)²+(b1-b2)²+(c1-c2)²).

The k-means clustering can be implemented in the following process toestablish a signature tree:

First, a group, group A, is selected, and the main color of the group isset as the root node of a signature tree and the root node is set as theparent node of subtrees.

Second, the CFVs of the images in group A are divided into K subgroupsusing a clustering technique according to the distance between theimages' CFVs. Here, K is an integer that is greater than 1. If any ofthe K subgroups does not meet a predetermined grouping stop condition,the clustering center of the respective CFVs of this subgroup is set asa child node of the current parent node and this subgroup is set as thecurrent image group; then set the child node as the current parent node.This step is performed recursively.

In some embodiments, the clustering center of the groups is a CFV(CFV-center) determined from all the CFVs in the group. The distancebetween the CFV-center and each CFV in the subgroup is less than thedistance between any CFV in other subgroups and each CFV in thissubgroup.

A plurality of grouping stop conditions can be used. In someembodiments, the grouping stop condition refers to that the total numberof CFVs in the group is lower than a preset threshold. The presetthreshold is an integer greater than 1. In some other embodiments, thegrouping stop condition means that the distances between each CFV in thegroup and the CFVs' clustering center of the group is lower than apreset threshold. The threshold is a natural number. In otherembodiments, the grouping stop condition can be set as that the numberof divisions of a group exceeds a threshold, which is an integer greaterthan 1. The number of divisions of a group refers to the number ofdivision performed for obtaining the subgroup from the initial imagegroup A.

Third, in the event that any of the K subgroups meets the predeterminedgrouping stop condition, the image corresponding to each of the CFVs inthe K subgroups is set as a child node of the current parent node, andthis child node represents a group that is obtained from subdividing theimages in group A into K subgroups using the clustering technique in thesecond step.

At 230, a search is conducted among the plurality of subgroups for aresult-subgroup having the same main color as that of a given image andcontaining an image whose CFV has the shortest distance from the CFV ofthe given image.

In some embodiments, the search is carried out as the following: (1)searching the image signature tree established above for a subtree, inwhich the root node is the main color of the given image, and settingthis subtree's root node as the current parent node; (2) searching thechild nodes of the current parent node in the subtree, and in the eventthat the child node found is an intermediate node, proceeding to thenext step, in the event that the child node found is a leaf node,skipping the next step; (3) setting the intermediate node as the currentparent node and returning to step (2) in the event that the distancebetween the CFV of the intermediate node and that of the given imagemeets a preset condition; otherwise, stopping the search; and (4)defining the subgroup represented by the leaf node as the groupcontaining images whose main color is the same as that of the givenimage and whose CFV has the shortest distance from that of the givenimage.

In some embodiments, the preset condition mentioned above includes: (a)the distance between the CFV of the intermediate node and that of thegiven image is lower than a predetermined threshold, which is a naturalnumber; and (b) the distance between the CFV of this intermediate nodeand that of the given image is the minimum value among the distancesbetween the CFVs of all the intermediate nodes found and that of thegiven image. For example, if there are four intermediate nodes of thecurrent parent node, and the distances between the CFVs of the fourintermediate nodes and that of the given image are 1, 2, 3, and 4,respectively, then the intermediate node corresponding to the distance 1is determined as the node meeting the preset condition.

At 240, the image feature of the given image is compared with the imagefeature of each image in the result-subgroup, and a plurality of imagesthat meet a preset near-duplicate image determining condition isselected as the near-duplicate images of the given image. Here, thenear-duplicate image determining condition is the same as that of FIG.1.

FIG. 3 is a schematic diagram of the structure of an image signaturetree established in the embodiment of FIG. 2. In this example, an imagegroup contains 10 images. The signature tree of this group isestablished by the following process:

1) set the root of the signature tree.

2) divide the images into 2 groups so that each group includes 5 images.The images' main color in the first group (G1) is determined to be redand the images' main color in the second group (G2) is determined to beblue. The CFV for each image in both groups is calculated.

3) set the main color of the images in the first group G1 as the rootnode of one subtree, subtree 1, of the signature tree; then set the rootnode of subtree 1 as the current parent node; and further divide imagesin the subtree 1 into 2 subgroups (G11 and G12) using the clusteringtechnique according to the CFV distances between images. As the resultof the further division, a first subgroup (G11) includes the CFVs of 2images and a second subgroup (G12) includes the CFVs of 3 images.

4) set the MCRs and the CFVs of the 2 images in the first group (G11) asa child node (leaf node 1) of the current parent node (root node ofsubtree 1) since the preset grouping stop condition is met, i.e., thenumber of vectors in a group is less than 3; and set the clusteringcenter of the 3 CFVs in the second group (G12) as another child node(intermediate node 1) of the current parent node (root node ofsubtree 1) since the preset stop grouping stop condition is not met;then set intermediate node 1 as the current parent node.

5) further divide the CFVs of the 3 images in the G12 into 2 subgroupsusing the clustering technique according to the distances between theCFVs of the images in G12 so that a first subgroup of G12 (G121) fromthe division includes the CFV of 1 image and a second subgroup of G12(G122) from the division includes the CFVs of 2 images.

6) set the MRC and the CFV of the one image in G121 as a child node(leaf node 2) of the current parent node (intermediate node 1) and setthe MRCs and CFVs of the two images in G122 as another child node (leafnode 3) of the current parent node (intermediate node 1) since both G121and G122 meet the preset grouping stop condition, i.e., the number ofvectors is less than 3 in each group.

7) set the main color of the image in G2 as the root node of a subtree,subtree 2, of the signature tree; then set this root node of subtree 2as the current parent node; and further divide the images in subtree 1into 2 subgroups (G21 and G22) using the clustering technique accordingto the CFV distances between images. As the result of the furtherdivision, a first subgroup (G21) includes the CFV of 1 image and asecond subgroup (G22) includes CFVs of 4 images.

8) set the MCR and the CFV of the one images in the first group (G21) asa child node (leaf node 4) of the current parent node (root node ofsubtree 2) since the preset grouping stop condition, i.e., the number ofvectors in a group is less than 3, is met; and set the clustering centerof the 4 CFVs in the second group (G22) as another child node(intermediate node 2) of the current parent node (root node of subtree2) since the preset stop grouping stop condition is not met; then setintermediate node 2 as the current parent node.

9) further divide the CFVs of the 4 images in the group G22 into 2subgroups using the clustering technique according to the distancesbetween the CFVs of the images in G22 so that a first subgroup of G22(G221) from the division includes the CFV of 2 images and a secondsubgroup of G22 (G222) from the division includes the CFVs of another 2images.

10) set the MRCs and the CFVs of the two images in G221 as a child node(leaf node 5) of the current parent node (intermediate node 2) and setthe MRCs and CFVs of the two images in G222 as another child node (leafnode 6) of the current parent node (intermediate node 2) since both G221and G222 meet the preset grouping stop condition, i.e., the number ofvectors is less than 3 in each group.

The image signature tree for ten images is thus established in FIG. 3.Because the image signature tree includes six leaf nodes, the 10 imagesare divided into six groups.

After the image signature tree is built as shown in FIG. 3, thefollowing process can be used to search a near duplicate-image for agiven image, which has “red” as its main color:

1) search the image signature tree for a subtree whose root node has“red” main color and set this root node as the current parent node (rootnode of subtree 1) of the “red” subtree found.

2) search the child nodes of the current parent node (root node ofsubtree 1). Two child nodes are found: leaf node 1 and intermediate node1.

3) compare the image features of leaf node 1 with those of the givenimage. The comparison result shows that the distance between the CFV ofthe given picture and the CFV of leaf node is 0 and the differencebetween the MCR of the given image and the MCR of the leaf node 1 islower than a preset MCR threshold. Thus, leaf node 1 is selected as thenear-duplicate image of the given image; and

4) calculate the distance between the CFV of intermediate node 1 and theCFV of the given image. The result shows that the distance exceeds apreset threshold and thus does not meet the preset condition.

FIG. 4 is a flowchart illustrating another embodiment of anear-duplicate image searching method.

At 410, the CFV of each image in a plurality of images is determined.

At 420, the plurality of images is divided into a plurality of groupsusing a clustering technique according to the distance of the pluralityof the images' CFVs.

In some embodiments, the clustering technique is similar to the k-meansclustering technique at 220 of FIG. 2.

At 430, a search is conducted among the plurality of subgroups for aresult-subgroup whose CFVs' clustering center has the shortest distancefrom the CFV of a given image.

In some embodiments, the search is carried out as the following: (1)setting the root node of the signature tree built above as the currentparent node; (2) searching the image signature tree for the child nodesof the current parent node; in the event that the child node found is anintermediate node, proceeding to the next step; in the event child nodefound is a leaf node, skipping the next step; (3) setting theintermediate node as the current parent node and returning to the laststep if the distance between the CFV of the intermediate node and theCFV of the given image meets a preset condition; otherwise, stopping thesearch; and (4) selecting the subgroup represented by the leaf node asthe group containing images whose CFV has the shortest distance fromthat of the given image. Here, the preset condition is the same as thatof FIG. 2.

At 440, the image feature of the given image is compared with the imagefeature of each image in the result-subgroup; and a plurality of imagesthat meets a preset near-duplicate image determining condition isselected as the near-duplicate images of the given image. Here, thepreset near-duplicate image determining condition is the same as that inFIG. 2.

Example implementations of embodiments of systems for near-duplicateimage searching are described below. Some systems are described toinclude a number of modules or units. The modules or units can beimplemented as software components executing on one or more processors,or as hardware such as programmable logic devices and/or ApplicationSpecific Integrated Circuits designed to perform certain functions orcombinations thereof. In some embodiments, the modules/units/subunitscan be embodied by a form of software products which can be stored in anonvolatile storage medium (such as optical disk, flash storage device,mobile hard disk, etc.), including a number of instructions for making acomputer device (such as personal computers, servers, network equipment,etc.) implement the methods described in the embodiments of the presentinvention. The modules or units may be implemented on a single device ordistributed across multiple devices. The functions of the modules orunits may be merged into one another or further split into multiplesub-modules or sub-units.

FIG. 5 is a schematic diagram illustrating an embodiment of anear-duplicate image searching system. In the example shown, a user 510sends a given image, which may be uploaded by the user found over theInternet to a near-duplicate image searching server 520. Thenear-duplicate image searching server 520 then searches an imagedatabase 540 through a network 530 according to the embodimentsillustrated in FIGS. 1-4. Finally, server 520 returns the searchingresult to the user 510. In some embodiments, calculating and comparingthe CFVs and MCRs of the images are carried out in the memory of server520. The CFVs and MCRs of the images may be stored in database tables ofthe image database 540 once they are calculated for each image. Thesignature tree built by the embodiments above may also be stored in thedatabase.

FIG. 6 is a block diagram illustrating an embodiment of a near-duplicateimage searching system that may be used in accordance with an embodimentof the present invention. As shown, in some embodiments, anear-duplicate image searching server includes: a grouping module 610,which is adapted to divide a plurality of images into a plurality ofgroups with the images in any one of the groups sharing the same maincolor; a searching module 620, which is adapted to search the pluralityof groups for a group containing images with a main color the same asthat of a given image; and a matching module 630, which is adapted tocompare the image features of the images in the group found by thesearching module 620 with the image features of a given image and selectan image which meets a preset near-duplicate image determining conditionaccording to the comparison result as the near-duplicate image of thegiven image.

FIG. 7 is a block diagram illustrating an embodiment of a near-duplicateimage searching system that may be used in accordance with an embodimentof the present invention. As shown, in some embodiments, anear-duplicate image searching server includes: a first grouping module710, which is adapted to divide a plurality of images into a pluralityof groups, with the images in any one of the groups sharing the samemain color; a vector determining module 720, which is adapted todetermine the CFVs of the images in each of the plurality of groups; asecond grouping module 730, which is adapted to subdivide the images ineach of the plurality of groups into a plurality of subgroups using aclustering technique, according to the distance between the CFVs of theimages in the group; a searching module 740, which is adapted to searchin the subgroups obtained from the subdivision by the second groupingmodule, for a subgroup containing an image whose main color is the sameas the main color of the given image and whose CFV has the shortestdistance from the CFV of the given image; and a matching module 750,which is adapted to compare the image features of the images in thesubgroup found by the searching module 740 with the image features ofthe given image, and select images that meet the preset near-duplicateimage determining condition according to the comparison result as thenear-duplicate image of the given image.

The second grouping module 730 further includes: a sub-treeestablishment unit, which is adapted to set each of the plurality ofgroups as the current image group and as a first subgroup, and set themain color of the images in the current image group as a root node ofthe subtree, and then set this root node as the current parent node; thesub-tree establishment unit trigger a clustering grouping unit; aclustering grouping unit, which is adapted to divide the CFVs of theimages in the current image group into K subgroups using a clusteringtechnique according to the distance between the CFVs of the images inthe current image group, where K is a natural number; the clusteringgrouping unit triggers a recursion establishment unit; a recursionestablishment unit, which is adapted to determine whether a member ofthe K subgroups meets a predetermined grouping stop condition; if so, ittriggers a leaf node establishment unit, otherwise, it triggers anintermediate node establishment unit; an intermediate node establishmentunit, which is adapted to set the clustering center of the CFVs in thesubgroup as a child node of the current parent node, then set thissubgroup as the current image group, and set the child node as thecurrent parent node; it triggers the clustering grouping unit; and aleaf node establishment unit, which is adapted to set the imagescorresponding to the CFVs, which meet the predetermined grouping stopcondition, in this subgroup as the child node of the current parentnode, and select the subgroup corresponding to this child node as one ofthe plurality of subgroups (the first subgroup) that is obtained byusing the clustering technique according to the distance between theCFVs in the first subgroup. The grouping stop condition here is the sameas the embodiments described in connection with FIG. 2.

The searching unit 740 further includes: a first searching unit, whichis adapted to search the image signature tree for a subtree in which theroot node is the main color of the given image and set the root node ofthis subtree as the current parent node; a second searching unit, whichis adapted to search the subtree for a child node of the current parentnode; if the child node is an intermediate node, it triggers anintermediate node processing unit; and if the child node is a leaf node,it triggers a leaf node processing unit; the intermediate nodeprocessing unit, which is adapted to determine whether the distancebetween the center of the CFVs of the intermediate node and the CFV ofthe given image meets a preset condition, if so, it sets theintermediate node as the current parent node; otherwise, it stops thesearching; and the leaf node processing unit, which is adapted todetermine the subgroup containing the images of the leaf node as asubgroup in which the images' main color is the same as that of thegiven image and their CFVs have the shortest distance from that of thegiven image. Here, the preset conditions and the near-duplicate imagedetermining conditions are the same as mentioned in FIG. 2.

FIG. 8 is another block diagram illustrating an embodiment of anear-duplicate image searching system that may be used in accordancewith an embodiment of the present invention. As shown, in someembodiments, a near-duplicate image searching server includes: a vectordetermining module 810, which is adapted to determine the CFV of each ofa plurality of images to be grouped; a grouping module 820, which isadapted to divide the plurality of images into a plurality of groupsusing a clustering technique according to the distances between the CFVsof the plurality of images; a searching module 830, which is adapted tosearch the plurality of groups for a group which contains a plurality ofimages with their CFVs having the shortest distance from the CFV of thegiven image; and a matching module 840, which is adapted to compare theimage features of images in the group found by the searching module 830with the image features of the given image, and select a plurality ofimages that meets the preset near-duplicate image determining conditionas the near-duplicate image of the given image according to thecomparison result.

The grouping module 820 further includes: an initializing unit, which isadapted to set a root node of the image signature tree; it also sets theroot node as the current parent node and the group containing aplurality of images as the current image group; a clustering groupingunit, which is adapted to divide the CFVs of the images in the currentimage group into K subgroups using the clustering technique according tothe distance between the CFVs of the images in the current image group,where K is a natural number; a recursion establishment unit, which isadapted to determine whether each of the K subgroups meets apredetermined grouping stop condition; and, if so, it triggers a leafnode establishment unit, otherwise, it is also adapted to trigger anintermediate node establishment unit; an intermediate node establishmentunit, which is adapted to set the clustering center of the CFVs in thesubgroup as a child node of the current parent node, to set this groupas the current image group, and to set the child node as the currentparent node; it is also adapted to trigger the clustering grouping unit;and a leaf node establishment unit, which is adapted to set the imagescorresponding to the CFVs, which meet the predetermined grouping stopcondition, in this subgroup as the child node of the current parentnode, and select the subgroup corresponding to this child node as one ofthe plurality of subgroups (the first subgroup) that is obtained byusing the clustering technique according to the distance between theCFVs of the plurality of images to be grouped. Examples of the groupingstop condition are mentioned above in connection with FIG. 2

The searching module 830 further includes: a first searching unit, whichis adapted to set the root node of the image signature tree as thecurrent parent node, search the image signature tree for a child node ofthe current parent node, and trigger an intermediate node processingunit if the child node is an intermediate node and trigger a leaf nodeprocessing unit if the child node is a leaf node; an intermediate nodeprocessing unit, which is adapted to determine whether the distancebetween the CFVs of the intermediate node and the CFV of the given imagemeets a preset condition, and if so, set the intermediate node as thecurrent parent node and trigger the first searching unit; otherwise,stop the searching; and the leaf node processing unit, which is adaptedto determine the subgroup containing the images of the leaf node as asubgroup in which the images' CFVs have the shortest distance from thatof the given image.

Examples of the preset conditions and the near-duplicate imagedetermining conditions are described in connections with FIG. 2.

The embodiments of the present invention use grouping techniques tosub-divide the original image group into much smaller subgroups. Insteadof comparing all the images in a big group to find near-duplicate imagesof a given image, only the images in a much smaller subgroup meeting apreset conditions need to be compared with the given image. Therefore,searching efficiency for near-duplicate images is much improved comparedto the conventional searching methods.

For easy description, the above system is divided into, according tofunctions, various modules, which are described respectively. However,the function of each module may be implemented in one or more softwareand/or hardware during the practice of the present application.

One skilled in the art should understand that the embodiments of thisapplication may be provided as a method, a system, or a computerproduct. Therefore, this application may be in the form of full hardwareembodiments, full software embodiments, or a combination thereof.Moreover, this application may be in the form of a computer programproduct that is implemented on one or more computer-usable storage media(including, without limitation, magnetic disk storage, CD-ROM, flash,and optical storages) containing computer-usable program codes. Thoseprogram codes include instructions to make a computer apparatus executefull or partial embodiments of the methods described above.

The respective embodiments of the present application are described oneby one, the same and similar parts of the embodiments are made byreference, and in each embodiment is emphasized the difference fromother embodiments. Specifically, the system embodiments are describedbriefly due to similarity to the method embodiments, and relevantmodules of the system embodiments are made with reference to the methodembodiments.

The present application may be applied to many universal or dedicatedcomputing system environments or configurations, for example, a personalcomputer, a server computer, a handset or a portable device, aflat-panel device, a multi-processor system, a microprocessor-basedsystem, a set-top box, a programmable consumer electric device, anetwork PC, a minicomputer, a large-scale computer, a distributedcomputing system including any one of the above systems or devices, etc.

This application is described referring to the flow chart and/or blockdiagram of the method, system, and computer program product according tothe embodiments of this application. It should be understood that eachflow and/or block in the flow chart and/or block diagram, and thecombination of flows and/or blocks in the flow chart and/or blockdiagram may be realized in computer program instruction. In fact, theentire application may be described in a general context of a computerexecutable instruction that is executed by a computer, for example, aprogram module. Generally, the program module includes routines,programs, objects, components, data structures, etc., for executing aspecified task or implementing a specified abstract data type.Alternatively, the present invention may be implemented in a distributedcomputing environment, where a remote processing device connectedthrough a communication network executes the task. In the distributedcomputing environment, the program module may be located in a local orremote computer storage medium which includes a storage device

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

What is claimed is:
 1. An image processing method, comprising: dividingthe plurality of images into a plurality of groups wherein images in thesame group share the same main color; extracting a color feature vector(CFV) of each image in the plurality of groups; subdividing images ineach of the plurality of groups into a plurality of subgroups using aclustering technique according to a distance between the CFVs of theimages in the group; searching, using one or more computer processors,among the plurality of subgroups for a result-subgroup having the samemain color as the main color of a given image and containing an imagewhose CFV has the shortest distance from the CFV of the given image;comparing the CFV of the given image with the CFVs in the result group;and identifying a near-duplicate image from the result group that meetsa preset near-duplicate image determining condition.
 2. The method ofclaim 1, further comprising receiving a plurality of images to begrouped.
 3. The method of claim 1, wherein extracting the color featurevectors of an images comprises: dividing the image into N blocks,wherein N is an integer greater than 1; calculating the number of pixelscorresponding to each of a predetermined number of colors for each ofthe N blocks; and constructing a vector with the numbers of the pixelscorresponding to the N blocks as the vector components.
 4. The method ofclaim 1, wherein: subdividing the images into a plurality of subgroupscomprises: subdividing the images into a plurality of subgroups toestablish a signature tree; and the plurality of images, the pluralityof groups, and the image tree are stored in an image database.
 5. Themethod of claim 1, wherein subdividing the images into a plurality ofsubgroups comprises: setting a first group of the plurality of groups asa current image group; setting a main color of the images in the currentimage group as a root node of a subtree of an image signature tree, andsetting the root node as a current parent node; and performing recursivedivision of the images in the current image group, comprising: dividingthe CFVs of the images in the current image group into K subgroups,using a clustering technique according to a distance between the CFVs ofthe images in the current image group, wherein K is an integer greaterthan 1; setting the clustering center of the CFVs of a first subgroup ofthe K subgroups as a first child node of the current parent node,setting the first subgroup as the current image group, and setting thefirst child node as the current parent node in the event that the firstsubgroup does not meet a predetermined grouping stop condition; andsetting the images corresponding to the CFVs of a first subgroup of theK subgroups as the child nodes of the current parent node, and selectingthe first subgroup as one of the plurality of subgroups comprisingimages which are obtained using the clustering technique according tothe distance between the CFVs of the images in the event that the firstsubgroup meets a predetermined grouping stop condition.
 6. The method ofclaim 1, wherein: subdividing the images into a plurality of subgroupscomprises: subdividing the images into a plurality of subgroups toestablish a signature tree; and searching for a result-subgroupcomprises: searching the image signature tree for a subtree whose rootnode is the main color of the given image, and setting the root node ofthis subtree as the current parent node; and recursively searching thesubtree, comprising: searching the subtree for a first child node of thecurrent parent node and determining whether the distance between thecenter of the CFVs of the first child node and the CFV of a given imagemeets a preset condition in the event that the first child node is anintermediate node; setting the first child node which is an intermediatenode as the current parent node in the event that the distance meets apreset condition; stopping searching in the signature tree in the eventthat the first child node is an intermediate node and the distance doesnot meet a preset condition; and selecting the group in the first childnode as a subgroup comprising a plurality of images whose main color isthe same as that of the given image and whose CFVs have the shortestdistance from that of the given image in the event that the child nodeis a leaf node.
 7. The method of claim 1, wherein the given picture isan image sent by a user via a network.
 8. The method of claim 1, furthercomprising returning the near-duplicate images to the user.
 9. Themethod of claim 5, wherein the grouping stop condition includes thatnumber of CFVs in a group is lower than a preset threshold.
 10. Themethod of claim 5, wherein the grouping stop condition include thatdistances between the CFVs in a group and the clustering center of theCFVs of the group are lower than a preset threshold.
 11. The method ofclaim 5, wherein the grouping stop condition include that number ofdivisions performed for obtaining a group from a plurality of imagesexceeds a preset threshold.
 12. An image processing method, comprising:receiving a plurality of images to be grouped; extracting a plurality ofcolor feature vectors (CFVs) that correspond to the plurality of images;dividing the plurality of images into a plurality of groups using aclustering technique according to a distance between the CFVs of theimages in the group; receiving a given image; searching, using one ormore computer processors, among the plurality of groups for a resultgroup whose CFVs' clustering center has the shortest distance from theCFV of the given image; comparing the CFV of the given image with theCFVs in the result group; and selecting a plurality of images that meeta preset near-duplicate image determining condition according to thecomparison result as the near-duplicate image of the given image. 13.The method of claim 12, wherein dividing the images into a plurality ofgroups comprises: setting a root node of an image signature tree andsetting the root node as the current parent node; setting a first groupof the plurality of groups as the current image group; setting a groupwith a plurality of images as the current image group; setting the maincolor of the images in the current image group as a root node of asubtree of an image signature tree, and setting the root node as thecurrent parent node; and performing recursive division of the images inthe current image group, comprising: dividing the CFVs of the images inthe current image group into K subgroups, using a clustering techniqueaccording to the distance between the CFVs of the images in the currentimage group, wherein K is an integer greater than 1; setting theclustering center of the CFVs of a first subgroup of the K subgroups asa first child node of the current parent node, setting the firstsubgroup as the current image group, and setting the first child node asthe current parent node in the event that the first subgroup does notmeet a predetermined grouping stop condition; and setting the imagescorresponding to the CFVs of a first subgroup of the K subgroups as thechild nodes of the current parent node, and selecting the first subgroupas one of the plurality of subgroups comprising images which areobtained using the clustering technique according to the distancebetween the CFVs of the images in the event that the first subgroupmeets a predetermined grouping stop condition.
 14. The method of claim12, wherein: subdividing the images into a plurality of subgroupscomprises: subdividing the images into a plurality of subgroups toestablish a signature tree; and searching for a result-subgroupcomprises: setting the root node of the image signature tree as thecurrent parent node; and searching the image signature tree recursively,comprising: searching for a child node of the current parent node anddetermining whether the distance between the center of the CFVs of thefirst child node and the CFV of a given image meets a preset conditionin the event that the first child node is an intermediate node; settingthe first child node which is an intermediate node as the current parentnode in the event the distance meets a preset condition; stoppingsearching in the signature tree in the event that the first child nodeis an intermediate node and the distance does not meet a presetcondition; and selecting the group of the first child node as a subgroupcomprising a plurality of images whose CFVs have the shortest distancefrom the CFV of the given image in the event that the first node is aleaf node.
 15. The method of claim 12, wherein: subdividing the imagesinto a plurality of subgroups comprises: subdividing the images into aplurality of subgroups to establish a signature tree; and the pluralityof images, the plurality of groups, and the image tree are stored in animage database.
 16. A near-duplicate image searching system, comprising:one or more processors coupled to an interface, configured to: dividethe plurality of images into a plurality of groups wherein images in thesame group share the same main color; extract a color feature vector(CFV) of each image in the plurality of groups; subdivide images in eachof the plurality of groups into a plurality of subgroups using aclustering technique according to a distance between the CFVs of theimages in the group; search among the plurality of subgroups for aresult-subgroup having the same main color as the main color of a givenimage and comprising an image whose CFV has the shortest distance fromthe CFV of the given image; compare the CFV of the given image with theCFVs in the result group; and identify a near-duplicate image from theresult group that meets a preset near-duplicate image determiningcondition; one or more memories coupled to the one or more processors,configured to provide the processors with instruction.
 17. Anear-duplicate image searching system, comprising: one or more computerprocessors coupled to an interface, configured to: receive a pluralityof images to be grouped; extract a plurality of color feature vectors(CFVs) that correspond to the plurality of images; divide the pluralityof images into a plurality of groups using a clustering techniqueaccording to a distance between the CFVs of the images in the group;receive a given image; search among the plurality of groups for a resultgroup whose CFVs' clustering center has the shortest distance from theCFV of the given image; compare the CFV of the given image with the CFVsin the result group; and select a plurality of images that meet a presetnear-duplicate image determining condition according to the comparisonresult as the near-duplicate image of the given image; and one or morememories coupled to the one or more processors, configured to providethe processors with instruction.
 18. A computer program product forsearching for near-duplicate images, the computer program product beingembodied in a tangible non-transitory computer readable storage mediumand comprising computer instructions for: dividing the plurality ofimages into a plurality of groups wherein images in the same group sharethe same main color; extracting a color feature vector (CFV) of eachimage in the plurality of groups; subdividing images in each of theplurality of groups into a plurality of subgroups using a clusteringtechnique according to a distance between the CFVs of the images in thegroup; searching among the plurality of subgroups for a result-subgrouphaving the same main color as the main color of a given image andcomprising an image whose CFV has the shortest distance from the CFV ofthe given image; comparing the CFV of the given image with the CFVs inthe result group; and identifying a near-duplicate image from the resultgroup that meets a preset near-duplicate image determining condition.19. A computer program product for searching for near-duplicate images,the computer program product being embodied in a tangible non-transitorycomputer readable storage medium and comprising computer instructionsfor: receiving a plurality of images to be grouped; extracting aplurality of color feature vectors (CFVs) that correspond to theplurality of images; dividing the plurality of images into a pluralityof groups using a clustering technique according to a distance betweenthe CFVs of the images in the group; receiving a given image; searchingamong the plurality of groups for a result group whose CFVs' clusteringcenter has the shortest distance from the CFV of the given image;comparing the CFV of the given image with the CFVs in the result group;and selecting a plurality of images that meet a preset near-duplicateimage determining condition according to the comparison result as thenear-duplicate image of the given image.